﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BE_CruzDelSur;
using System.Data.SqlClient;
using System.Data;
using BR_CruzDelSur.Interfaces;

namespace BR_CruzDelSur
{
    public class BR_Util : IBR_Util
    {
        Conexion conn = new Conexion();

        public List<BE_Util> f_ListarEstadosArribado()
        {
            List<BE_Util> lst = new List<BE_Util>();
            lst.Add(new BE_Util() { Codigo = "EN", Nombre = "ENVIADO" });
            lst.Add(new BE_Util() { Codigo = "RC", Nombre = "RECIBIDO" });
            return lst;
        }

        public List<BE_Util> f_ListarUtil(String tipo, String entidad, bool todos)
        {
            List<BE_Util> lst = new List<BE_Util>();
            SqlParameter[] param = new SqlParameter[2];
            param[0] = new SqlParameter("CHR_TIPO_UTIL", SqlDbType.Char);
            param[0].Value = tipo;
            param[0].Direction = ParameterDirection.Input;
            param[1] = new SqlParameter("CHR_ENTIDAD_UTIL", SqlDbType.Char);
            param[1].Value = entidad;
            param[1].Direction = ParameterDirection.Input;

            DataSet ds = SqlHelper.ExecuteDataSet(conn.CadenaConexion, System.Data.CommandType.StoredProcedure, "SP_LISTAUTIL", param);

            if (todos)
            {
                lst.Add(new BE_Util() { Codigo = "", Nombre = "TODOS" });
            }

            foreach (DataRow item in ds.Tables[0].Rows)
            {
                lst.Add(new BE_Util() { Codigo = item["CHR_UTIL"].ToString(), Nombre = item["VCH_NOMBRE"].ToString() });                
            }

            return lst;
        }

        public BE_Util f_BuscarUtilXCodigo(String codigo, String entidad)
        {
            SqlParameter[] param = new SqlParameter[2];
            param[0] = new SqlParameter("CHR_CODIGO", SqlDbType.VarChar);
            param[0].Value = codigo;
            param[0].Direction = ParameterDirection.Input;
            param[1] = new SqlParameter("CHR_ENTIDAD_UTIL", SqlDbType.Char);
            param[1].Value = entidad;
            param[1].Direction = ParameterDirection.Input;

            DataSet ds = SqlHelper.ExecuteDataSet(conn.CadenaConexion, System.Data.CommandType.StoredProcedure, "SP_BUSCAUTILXCODIGO", param);

            foreach (DataRow item in ds.Tables[0].Rows)
            {
                return new BE_Util() { Codigo = item["CHR_UTIL"].ToString(), Nombre = item["VCH_NOMBRE"].ToString() };
            }

            return null;
        }

        public double f_doubleValor(string valor)
        {
            double dbl = 0;
            double.TryParse(valor, out dbl);
            return dbl;
        }

        public int f_intValor(string valor)
        {
            int dbl = 0;
            int.TryParse(valor, out dbl);
            return dbl;
        }

        public DateTime f_datetimeValor(string valor)
        {
            DateTime dbl = new DateTime(1950, 1, 1);
            DateTime.TryParse(valor, out dbl);
            return dbl;
        }

    }
}
